home *** CD-ROM | disk | FTP | other *** search
/ AGA Toolkit '97 / The AGA Toolkit '97.iso / c / find.doc < prev    next >
Text File  |  1996-09-07  |  9KB  |  194 lines

  1.           ============================================================
  2.            $VER: find.doc 36.2 (17.1.96) Copyright (c) Ralph Seichter
  3.           ============================================================
  4.  
  5.  
  6. DESCRIPTION
  7.  
  8.    I wrote 'find' because I needed a tool to find files (obviously :) which
  9. match a given name pattern. 'find' is able to search multiple directories,
  10. including all subdirectories, the current directory and its subdirs, or the
  11. current CLI command path only. The output can be formatted in a way which
  12. tries to imitate 'List LFORMAT' behaviour, and you can make 'find' create
  13. shell scripts for you and execute them on the fly.
  14.  
  15.    Please note that 'find' is pure, you can make it resident. As it is less
  16. than 3 KB in size, this is recommended. Check the executable by using the
  17. List command (you should see output like the following line) and modify the
  18. file protection bits if necessary:
  19.  
  20.         find   2760 --p-rwed 17-Jan-96 16:45:55
  21.  
  22.    Requires 'dos.library' V36 (OS 2.0) or better.
  23.  
  24.  
  25. COPYRIGHT NOTICE
  26.  
  27.    This program is Copyright (c) 1996 Ralph Seichter, all rights reserved.
  28. You may however freely use it and give copies to your friends, as long as
  29. you don't add data to or remove data from the distribution archive. You may
  30. *NOT* include any part of the distribution archive in a commercial software
  31. package. If you have comments or suggestions, feel free to contact me. Use
  32. PGP-encrypted Email when possible, you can find my public key at the end of
  33. this file.
  34.  
  35.         Ralph Seichter         Email: zodiac@darkness.gun.de
  36.         Am Christenrain 12
  37.         56479 Stein
  38.         Germany
  39.  
  40.  
  41. USAGE EXAMPLES
  42.  
  43.    Locate all C source files on partition DH1:
  44.    -> find #?.c dh1:
  45.  
  46.    Find all Icons in the current directory and all its subdirs, but
  47.    don't display the ".info" suffix.
  48.    -> find #?.info lformat %m
  49.  
  50.    Print file name stems and extensions as a formatted table.
  51.    -> find #? RAM: lformat "%-20N|%3.3e"
  52.  
  53.    Get rid of all files with the prefix "foo" on some partitions, but
  54.    don't go deeper than three subdirectory levels while scanning.
  55.    -> find foo#? sys: dh2: bozo: depth=3 lformat="delete %p%n" exec
  56.  
  57.    Find 'Type' in the command path.
  58.    -> find Type path
  59.  
  60.    Find all occurences of 'bar' in the command path.
  61.    -> find bar full
  62.  
  63.    I hope that these few examples show some of the potential of 'find'. The
  64. possibility to create shell scripts and have them executed without further
  65. interaction is certainly very useful for many tasks.
  66.  
  67.  
  68. COMMAND TEMPLATE
  69.  
  70.    PATTERN/A     Any OS name pattern, i.e. "#?.info".
  71.  
  72.    DIRECTORY/M   List of directories to scan. If omitted, only the current
  73.                  directory and its subdirectories will be searched.
  74.  
  75.    DEPTH/K/N     Number of subdirectory levels (recursion depth). DEPTH=0
  76.                  means no subdirs, DEPTH=1 one subdir level, and so on.
  77.  
  78.    LFORMAT/K     Format string (%[flags][width.limit][length]type). You can
  79.                  use a subset of the templates known from 'List LFORMAT' to
  80.                  modify the output. As an example, a file "DH0:Foo/Bar.c"
  81.                  shall be used.
  82.  
  83.                     %e   Name suffix            .c
  84.                     %f   Full path and name     DH0:Foo/Bar.c
  85.                     %m   Name without suffix    Bar
  86.                     %N   Full name              Bar.c
  87.                     %n   Full name (lowercase)  bar.c
  88.                     %p   Fully qualified path   DH0:Foo/
  89.                     %%   Percent sign           %
  90.  
  91.                  LFORMAT defaults to %f (full path and name).
  92.  
  93.    EXEC/S        Create shell script using the given LFORMAT string. You
  94.                  must specify LFORMAT, or EXEC will be ignored.
  95.  
  96.    FULL/S        Check full command path instead of stopping with the first
  97.                  match (FULL implies PATH).
  98.  
  99.    PATH/S        Find first matching file in the current CLI command path.
  100.  
  101.    VERBOSE/S     Print the names of all directories when they are scanned.
  102.  
  103.  
  104. DISCLAIMER
  105.  
  106.    THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  107. EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING WITHOUT LIMITATION
  108. ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY AND FITNESS FOR
  109. A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE USE, RESULTS, AND
  110. PERFORMANCE OF THIS MATERIAL IS ASSUMED BY YOU AND IF THE PRODUCT SHOULD
  111. PROVE TO BE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY
  112. SERVICING, REPAIR, OR OTHER REMEDIATION.
  113.  
  114.  
  115. -----BEGIN PGP PUBLIC KEY BLOCK-----
  116. Version: 2.6.2i
  117.  
  118. mQBNAi7dDgAAAAECANd1hBXK8RLHVmJxmhuq6hFS1HBIPHC7YImTZFs10d3FfQFe
  119. 63xBabCJxzQh06ODARdYuE7i9PfKqxQX9aw2mMEABRG0J1JhbHBoIFNlaWNodGVy
  120. IDx6b2RpYWNAZGFya25lc3MuZ3VuLmRlPokAlQIFEDDcBnKSm5QEVx+OOQEBvgkD
  121. +QHUNzE/Fv7fGdsptPSQhMzifIW4HAta1QjPP//J29rf2aGmfRVK6CmsYomlsEAz
  122. 9rMbTv9EoUI+Lw9kKNiJa/OvQcf2VAjyLBpMG0pVX2t2imGAk1MPJ9Gw9ww9/+pg
  123. MBope1sSMJcNj4FcQbl8ez7jzBvvI3i4ntg5pX5WB9R9iQCVAgUQL6EY1uOs69s0
  124. 78KZAQEuzAP/XL1+ugebVnpZFPb2zp4lKGT1frTVW6IXwKHqJmtGg0l2zE1EAI0b
  125. SZep95O65/C73IF14g3ECWcNp2sbqfucst2aTmx5tdHh77spVh6jICszCbw2eotu
  126. pvPHPVa1dU10W5au0FjfZoHXSDYXQicOBy+J0I6F9683Yg8QzqMdiSSJAJUCBRAw
  127. qfm3D0cvWzTXTcEBAYK5BACI8mVuDSToPejJCsQUWE+F8PBvhX4E2LhGEHe6DD2c
  128. 1ZC/SKGtuEssEpM9BL4o0x+MLtxDYHolnMzPdHCFeog2j15D1uLa+SDA4D8BVDuL
  129. wdNen81MVAuacCj2wDgbtfr8Jd/+UUN4Rs3a+3x+Q8D4w+2DuNcoiqXRW17Zy9n9
  130. 0YkAVQIFEDCmRrOb2lGD8IQbEQEBL1kB/2KlBq5TlQQxoBJmKAaM7F0+VSZMO1dQ
  131. w1g+u99BtEC+kHirBQqlqXy9BxT/Yo9nlpwRlH/cOLT9lxC6l70pMPOJAFUDBRAw
  132. h9mVfCQ4eY/vTuEBAZCoAgCN3i1CAeDzV/6TET9BOnAT0Vf7ayAeq241mq0XARD1
  133. leyMJ8oZQMnl1zHo/ty4p0o5nPZaX6ciF+7gys5JKnnGiQBVAgUQMHLEFkekbAQj
  134. CIb1AQGXowIApujYwCawfjXQTicponQoUkZ4sjgqYbi2zMlHBSu62ozhDIr8VuJP
  135. dGH9dDd+uDZkg7xcfnlJuotFAjxVPIbTyIkAlQMFEDBpkd6Zf/VzBZHP7QEBY60D
  136. /3j9epbtgPTHia11E5TzU47xfc45i2R8WyuQW0pAzXVT3KDecvSYzn8pAX8T6Yuq
  137. v5fFCrU04HIMTV//6fMo5GYwvXLdMUK8rUvPzjuMqpINhMbKB2Cjh6DdshDuZ7Yc
  138. uUjvOTyd0jGx2w40Y62Z3w1fODgIQh8dd6qpdk2FoEQpiQCVAwUQMAGnMU/tm7X1
  139. DNKNAQFOMAP9FexStYzwSHyHS9T9vx3+6dGqEjFM0dAi4psdUmXQBCGvoqLG9Bhd
  140. PKh/p3bwIQxt3TVaAZDQ6ikGjcL9qisKleBzFTDNgOboy0NTr64b8qgfKIFEFyR7
  141. UMeRlAmfprbRg/DCii1rVigt5G8sUtsVZ6dLOa+jLdq3ar9NwoY/xcWJAJUCBRAv
  142. 9xvWHPINp3SbhxEBATCRA/0eg68xEjL7buS6DPWm0CJyENadu0aFhnWd6u/tbgAi
  143. iGx5K23phBrftdpQ6zVr0pB+iJ42v4G0MQ8czxIXDPVr8DZzV2a30/4YmYry/Lgl
  144. jgX/77FWLkKdmYvkYPQOoTHk6vlsxDntiEldYoUl88eikNWsrm4zeNOX4hZhBj6r
  145. KIkAlQIFEC+NTlzCzXLU5dlqvQEB+n0EAK4v9z57aJkvykQ0Z+kE26FYjH4K1gGE
  146. jNRJ+/3eTj4pKUNiM1klTr7W8rYl7ao9IQPJ7MQlaVz8f3ePXq66xct7+6F20ukg
  147. qGichuG0UX3PyDqGs7qTlV38T7DsXS+djmiA0pvYPxolebH/0jfmamfwNOvEyair
  148. ljaHr4jfpDHtiQBVAgUQL1tc8IfBj5DiwG51AQG8BwH/b+JZiR2VuUCsEAv7iH9T
  149. uw/pL1kBeNrUS5yQuEApLYGDaKbR0apPACOskjd4Ya6RbjHCWPei9UyJRynMliud
  150. k4kAlQIFEC8MkEyXrQMPx2nOVQEBrTkD/imWRmI0bMZiglgI0toTl+chN9/omcia
  151. V31U/y09LzEbt41qQy7bIgc0BL8RzojRaCT0+bfpfUKF8KFIc37AUwIauuxQg7Ht
  152. 38mEC1lNrMmEBhgDRuqIry4Fn3Sx46CHM1eAtNLR9Bp9EL4xrGPcDTz5KhV3yQ6S
  153. MRDUngVY/ZBCiQCVAgUQLvIwCVXqh/xfZN9NAQGfGAQAzk63BYQoxfvx2bxThIO2
  154. CW45XcvnWcSvnJm9yyBAmtpwsWBQDT28folpywRxATsXQyx7aPqFl98MX3vTlQPW
  155. IVTPqEjIozUljAjnCh/t/ECeA7mSrZ89uJIzDIZ2FpGuIyywlIhNSLrbTKrJFqaT
  156. Dttl0HkpIzb3V4AvONMGax2JAJUCBRAu6ep12lJZ0DpaLPkBAfxjA/48Iaex82hf
  157. Y2LLBAOSjOaqfrVbUOX+EIxq5JYE3Rb0cFfDMcpsXG/jqGxEWDcX2AGEmf55d8Db
  158. +hq9iRd6YhnhTZBiNyW8Gw0iIeEx+YlO4B2pEb6GK9dTOVaPoHxkeZ6GR3Ry/cVu
  159. RTI2hN6IQDyI2IGGezUztzXLn+ft9i5xi4kAVQIFEC7i9PYRLNH/lX2BGQEBS9QC
  160. AK62x7677kv05iUS9cYsjoXiaFvvUVLzL2Vpyj6MRQ/OmSzmj3+55Jr2GtiTAgDL
  161. fbcTM4+/HXXhVGCqfHXYS4KJAJUCBRAu5Mcsp2iRPCL1EnUBASndBACUAy/e+LYH
  162. wiBrR1EQ7E6Vk0lKDVQ28T9ENCpZepjyNq+X5NLXNr1LIKZOxccQKrg8iGgVy89u
  163. P7VL1rXJgskbnnst8oJZ2/d65HnE/lEvx4YZUv77O9BrwDBWPcFDoptqIs8XzwkD
  164. JxKXKNflem8I0BFtKTI43nAFxBaemgnH6IkAlQIFEC7gdL0QrsS/2Ww30QEBFIoD
  165. /iWYjBfDeT8AwScoKcZfvvjK/+JYRpQhOlyIebr4pMWe1JjdynfT8xOxoR3x03fc
  166. coQKmuNfCbzoc3zxZOidCzspM1WWYc1P4nM7vrDOxLfiJLJyZ8JYbCVNsXZV8Cec
  167. nDTm7gevkJjMTLzXItO0CsP2XMnxb0wD0xYCzsWY2ATDiQBNAgUQLt/hQ3YA3PmG
  168. k4jtAQFu9wG8C0+H3mlffV9foz0HNtAW3FuhDuqF3YcIs/15R3kC/L/Qku5LcGu2
  169. 5s1H6RSE7z6obUyO77LgLcCJAFUCBRAu30nJsKSiKX7rMNUBAXJtAgCRmOVIrHb1
  170. 5dF21sE1nXpVzMhc6pyZF5g9QmxOMJVUpZGI1gInfGzyQWSvbOIEOOxEJt9O/9lC
  171. 8W611LQu3M2WiQBVAgUQLt4nOXaWLx1BlAWpAQGfUQIAmxut/bELpZ4jJvRhHbgC
  172. 6It+spWoIi1gF+2fYbhCXJtg0lz3kYI9eCs5yWzcWrWXxq6dPByyX5HykwQ7af0N
  173. sokAdQIFEC7eK1BVHGewg5AovQEBjQ8DAMPmryJeEkYrT+e9LZ45UFeXM/Vex6S8
  174. 1SkGo7h1zjmBpkZzoL+9yPflYCXyTYiuK64DQksprG6yU7UclDRPUAV7TiA1JHj5
  175. PoLhEWYYQxVMiHZ/thBXChqi7sBOnrtlTIkAlQIFEC7eOA2V0AI8DBgRIQEB/swD
  176. /1v7oiQTuE1oDlpJ5p5D1+VTaHr3Z6v11QEbsF7TpsYDu2ALm9dNVwKn9UR91Xek
  177. gbqVl11W+i8QpzHH+R9CBp9PEoutAdQGdpq0jsuFJibytJuz3misF1TwvRs51xnr
  178. gldFbRmNZfUDk3vrFkLhKdMds5LyOcY0De01DS7tWJq8iQBFAwUQLt53OXKX7rMf
  179. +1T9AQEc+QF7BeTFzR82O/ddk9KcVSgWFYGz/fDWazDdeJ3+7Oak6OknxF+jcrNt
  180. zI7z5qlmGoeNiQBVAwUQLt2RY7JgNWbm+2fRAQFPswH9HqnLsFdiE6ceWSvBNxZ/
  181. yTTkfVECZvNSjV1lpPLSYeyTlYV/hZoda2rp2CMlzzf0FDBD9+PnadkafE4f86ZV
  182. BokAVQIFEC7dDsOrFBf1rDaYwQEBTSkB/iFtXN181h5CJtjuWeo70uDiTaQttPnv
  183. vnaD4INwApxVGwyFcRoq3w37J8B4a46xMOAsY5/slPc1TlQombIAiqe0MFJhbHBo
  184. IFNlaWNodGVyIDxzZWljaHRlckBpbmZvcm1hdGlrLnVuaS1ib25uLmRlPokAlQIF
  185. EDCp+doPRy9bNNdNwQEBar4D/RTCvHkXuj7GT6nEXkecGFFbtQsq8csPpn7Gfq9+
  186. C4KWXWwFTu4jbT09/wqfc0l/JwWkoKTBhLCGJaqfHvJueG/G4ZRf4n57rWgemlq8
  187. lm65wfFUT6wnQG+9BBkyvPZPx4C1gv11YjL+v7lpunUmpoLMl73soMJtar8p7zZ3
  188. rln6iQBVAgUQL4BH+7Ckoil+6zDVAQHURQH/XIiN4TgPpdH9JeNZLTX26W20cRWb
  189. 4yqEMFntondxrF6xBKr1mhO4MK1xPa0H31te9AVz3k1k/oXBPHc6zBUB3YkAVQIF
  190. EC976sKrFBf1rDaYwQEBJpYB/iXC1sb2svJY/Zour3ddNNvE3CInj3TXp2UeacDd
  191. MVqwnD32E4wpikMABg2SP1p7UxGTqabcpIzFHPklmVt8iXA=
  192. =n7Jq
  193. -----END PGP PUBLIC KEY BLOCK-----
  194.